package com.example.clock_demo.dto;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

import java.math.BigDecimal;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class AttendanceMonthlySummaryDTO {
    private String employeeName;           // 姓名
    private String employeeNumber;         // 工号
    private int totalDaysInMonth;          // 月总天数

    private int totalScheduledDays;        // 排班天数 (有排班的日期)
    private int whiteShiftDays;            // 白班天数 (例如：长白班, 白班, 早班, 中班)
    private int nightShiftDays;            // 夜班天数 (例如：长夜班1, 夜班)
    private int restDays;                  // 休息天数 (无排班的日期)

    private BigDecimal totalScheduledHours;  // 总排班工时
    private BigDecimal totalActualWorkHours; // 总出勤工时

    private int actualAttendanceDays;      // 实际出勤天数 (按日计算，只要有打卡且符合条件就算出勤)
    private int absentDays;                // 缺勤天数

    private int lateCount;                 // 迟到次数
    private int earlyLeaveCount;           // 早退次数

    private BigDecimal attendanceHoursRatio; // 出勤工时比率 (总出勤工时 / 总排班工时)
    private BigDecimal attendanceDaysRatio;  // 出勤天数比率 (实际出勤天数 / 总排班天数)
}